package com.yyryyty.chapter5;


import com.yyryyty.chapter4.Dish;

import static com.yyryyty.chapter4.Dish.menu;
import static java.util.stream.Collectors.toList;

/**
 * @Description :
 * @Author : YTY
 * @Date : 2021-01-17 14:25
 */
public class Filtering {

    public static void main(String[] args) {

        // 过滤
//        menu.stream()
//                .filter(Dish::isVegetarian)
//                .collect(toList())
//                .forEach(System.out::println);


        // 去重
//        List<Integer> numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4);
//
//        System.out.println(numbers.stream()
//                .filter(i -> i % 2 == 0)
//                .distinct()
//                //                .forEach(System.out::println);
//                .mapToInt(Integer::intValue)
//                .sum());

        // 前几名
//        menu.stream()
//                .filter(dish -> dish.getCalories() > 300)
//                .sorted(comparing(Dish::getCalories).reversed())
//                .limit(3)
//                .map(Dish::getName)
//                .forEach(System.out::println);

        // 跳过前几名
//        menu.stream()
//                .filter(dish -> dish.getCalories() > 300)
//                .sorted(comparing(Dish::getCalories).reversed())
//                .skip(3)
//                .limit(1)
//                .map(Dish::getName)
//                .forEach(System.out::println);
//                .findAny().get());

        // 5.1 作业：用流筛选前两个荤菜
        menu.stream()
                .filter(dish -> dish.getType().equals(Dish.Type.MEAT))
                .limit(2)
                .collect(toList())
                .forEach(System.out::println);

    }
}
